perm filename RULES.DOC[DOC,BGB] blob
sn#047844 filedate 1973-06-10 generic text, type C, neo UTF8
COMMENT ⊗ VALID 00010 PAGES
C REC PAGE DESCRIPTION
C00001 00001
C00002 00002 0. TITLE PAGE. GEM RULES.
C00003 00003 1. THE GEM SYSTEM.
C00007 00004 2. GEM APPLICATIONS.
C00009 00005 3. GOALS - GEM WORK TO BE DONE.
C00013 00006 4. PPPN AND FILE CONTENTS.
C00015 00007 5. MACHINE CODING RULES.
C00016 00008 5. CONTINUED. EXAMPLE OF A SUBROUTINE.
C00018 00009 5. CONTINUED. MACHINE CODING RULES.
C00019 00010 6. RULES ABOUT EDITING RULES.DOC
C00020 ENDMK
C⊗;
0. TITLE PAGE. GEM RULES.
GEOMETRIC MODELING SYSTEM RULES.
GEM HACKERS:
BRUCE G. BAUMGART, 378-6038.
TOVAR MOCK, 327-2496.
GEM USERS:
1. THE GEM SYSTEM.
The overall project is called "Geometric Modeling" or GEM.
The geometric modeling system consists of three kinds of programs, 2D
image processing programs, 3D object processing programs, and
miscellaneous programs. Five specific programs are intended for
users: TVFONT, CRE3, GEOMED, GEOMEL, and GEOMES. These five
programs are documented individually elsewhere and are approachible
in the usual external fashion of communication between implementing
programmer and user programmer. On the other hand this document is
meant for "hackers" rather than "users"; a hacker is one who wants
to take a portion of GEM code and to adapt it to his application; or
wishs to contribute to the GEM system. Thus this document is
dynamic, and can be used as a journal, mailbox, or newspaper;
however the main reason for the document is as a written record of
GEM rules and conventions; perhaps if as the project developes a
program (the "CHAIR" for chairman) can be developed to maintain this
document and indeed administer and govern the GEM project according
to the wishs and needs of the participants.
TVFONT is for making type font bit arrays from television
images, or for rescaling existing fonts.
CRE is converts a sequence of digital television images
into a video intensity contour data structure. Auxiliary routines of
CRE provide cart and turntable control and XGP video output.
GEOMED is a 3D drawing program accessed thru a one character
jump table. GEOMED can construct arbitrary polyhedral objects and
display them with hidden lines eliminated. GEOMED can also accept
CRE's perceived images and form a polyhedral world model consistent
with such images.
GEOMEL is the bulk of GEOMED embedded in a LISP core image.
That is the subroutines comprising Geomed are accessible in LISP
notation, thus providing a geometric language for physical world
modeling and physical action simulation.
GEOMES is the bulk of GEOMED embedded in a SAIL core image.
That is the subroutines comprising GEOMED become SAIL accessible.
2. GEM APPLICATIONS.
The following applications of GEM are either being seriously
pursued by named individual, or are opportunities about which some
notes and thinking exists.
1. Turn table object perception. BGB's Thesis 1st priority.
2. Cart course navigation. BGB's Thesis 2nd priority.
3. Interactive mechanical drawing. TVR 1st priority.
4. Textbook and document figure drawing. TVR 2nd priority.
5. Architectual drawing.
6. Animation; hand-eye's arm, insect walker, tower collapse,
7. Type Font Contruction. BGB & TVR. completed.
8. Brain anatomy modeling. KRD.
9. Geometric Planner; tower building,
10. Geometric Programming Language, GPL1.
11. Vision by Verification.
12. Object Recognition.
13. GEM based Semantic modeling.
14. Alternate hand-eye project.
3. GOALS - GEM WORK TO BE DONE.
BGB LAST WEEK OF APRIL.
Get CRE's polygon compare and connect working.
Get final draft of CRE3 written.
Get CRE3 final external files into GEOMED.
Get 3D polygon, vertex and camera locus solvers.
Try to ignore other people.
Worry about assimulating TVR.
BGB LATER.
Turn table perception demo.
CRE3 publication.
GEOMED, GEOMEL, GEOMES draft documentation.
Get a draft of GEM proposals.
Newton routines
envelope routines
TVR IMMEDIATE SUGGESTED TASK LIST.
Get GEOMED converted to TVRHDR conventions.
Get Text nodes into GEOMED; under command letter "T";
command execution subr named XTEXT.
pointers to text nodes in TJOINT link position
of vertices.
Dangling Vertices should work and be allowed
for text nodes; if some operator can discover
and choke on a dangling vertex then that operator
should test the TXTBIT first.
Get the dry rot out of GEOMED display, arith and memory routines.
(but you must tell me about memory design before changing
anything major).
Get Data Disc III simulator into GEOMED and a IIIFLG and DDFLG
in the global status.
Try to help people who have GEOMED questions.
TVR LATER SUGGESTED TASK LIST.
Get arrow headed edges in.
Get dangling edges in. (must be marked to be ignored by OCCULT).
Get GEOMES and GEOMEL reset and reentry working.
Get circular arcs and spline arcs edge display options in.
ANY BODY.
Get better fatal message. Prints stack, re starts if not running
under BGB or TVR pppn.
Worry about bugs in "∂" node contents display.
Get MAKE VIDEO some place.
Get SHADOW written. (probably BGB).
Worry about additional external formats.
Get direct XGP output.
Get CRE3 under pity thru GEOMED.
Get solar emphemeris in.
Get a macro command facility in.
Get execution of external command files for GEOMED and GEOMEL.
Get better "?" help command, like TVFONT, into GEOMED.
4. PPPN AND FILE CONTENTS.
[GEM,BGB] Geometric Modeling, home of GEOMED.
[CRE,BGB] Contour-Region-Edge, home of CRE3.
[CAR,BGB] Cart Project.
[DAT,BGB] Data, television pictures.
[DOC,BGB] Documentation.
[0,BGB] Thesis work.
[1,BGB] Misc. work.
[LSP,BGB] Gemetric modeling embedded in LISP. GEOMEL.
[SAI,BGB] Gemetric modeling embedded in SAIL. GEOMES.
[XGP,TVR] Xerox Graphic Printer, home of TVFONT
FILES.
One major program is on a PPPN. Files extensions are used.
An indirect command file is provided for assembly and load of program.
Our programming language is PDP-10 machine code via the FAIL assembler.
A program consists of a header file, a node declaration file,
files of major subroutines, files of minor subroutines,
and our subroutine library file.
5. MACHINE CODING RULES.
SUBROUTINES.
A typical subroutine is formated as follows: there is a SUBR
line (yes TVR, "SUBR" is really "NSUBR") the subroutine's COMMENT, a
separation line (blanks or underbars), accumulator declarations, the
code of the subroutine, and the SUBEND line. Subroutines are
supposed to always fit on a single physical page. (see example in figure
xx below).
Subroutines are composed of "paragraphs" of code, a code
paragraph is several lines of code that hangs together and that can
be explained in a single line comment.
5. CONTINUED. ;EXAMPLE OF A SUBROUTINE.
SUBR(MATE2)PTR1,PTR2 FIND VERTEX MATES BETWEEN PTR1 & PTR2.
BEGIN MATE2
COMMENT/ Arguments are expected to be AOBJN accumulators -M,,U1 and
-N,,V1 of the two sets of vertices of a window. In this window, for
all the vertices of the first polygon find the closest vertex of the
second polygon. If the closest vertex is within an epsilon, a pointer
to the window block position of the second polygon's vertex is DIP'ed
into the window block position of the first polygon's vertex./
ACCUMULATORS{PTR1,PTR2,U,V,R,C,R1,C1,RMINIM,VMIN}
;GLOBALS{EPSLN2}
;FOR ALL VERTICES U OF PTR1.
LAC PTR1,ARG2
L1: LAC U,(PTR1)↔ROW R1,U↔COL C1,U
LAC RMINIM,EPSLN2↔DZM VMIN
;FOR ALL VERTICES V OF PTR2.
LAC PTR2,ARG1
L2: LAC V,(PTR2)
;IS THE DISTANCE BETWEEN U AND V LESS THAN R MINIMUM.
ROW R,V↔SUB R,R1↔IMUL R,R
COL C,V↔SUB C,C1↔IMUL C,C↔ADD R,C
CAML R,RMINIM↔GO .+3
DAC R,RMINIM↔DAPZ PTR2,VMIN
AOBJN PTR2,L2
;SAVE POINTER OF VERTEX V OF CLOSEST APPROACH TO VERTEX U.
DIP VMIN,(PTR1)
AOBJN PTR1,L1
POP2J
BEND MATE2;(BGB)15-APR-73.
5. CONTINUED. MACHINE CODING RULES.
NODES.
COMMENTS.
ALTERNATE MNEMONICS.
ACCUMULATOR CONVENTIONS.
DOCUMENTATION.
6. RULES ABOUT EDITING RULES.DOC;
Trivail addition and deletion is always allowed.
such as for spelling and punctiation.
For April and May let's just add serial numbered
articles as subject areas come to mind. We will reformat
at the end of May.
The level of "authority" corresponds to the serial
numbered list of names on the title page;